package cn.core.sign.service.intf;

import cn.core.sign.eo.Staff;
import cn.core.sign.qo.StaffQO;
import cn.core.sign.vo.StaffVO;
import cn.core.tool.util.Paging;
import cn.core.tool.util.Param;

import java.util.Collection;

/**
 * 员工 服务接口
 */
public interface IStaffService {

  /**
   * 员工 >>> 保存
   */
  public StaffVO save(StaffVO eo) throws Exception;

  /**
   * 员工 >>> 批量保存
   */
  public Collection<Staff> saveBatch(Collection<Staff> eos) throws Exception;

  /**
   * 员工 >>> 修改
   */
  public StaffVO update(StaffVO eo) throws Exception;

  /**
   * 员工 >>> 批量修改
   */
  public Collection<Staff> updateBatch(Collection<Staff> eos) throws Exception;

  /**
   * 员工 >>> 删除
   */
  public void remove(Staff eo) throws Exception;

  /**
   * 员工 >>> 批量删除
   */
  public void removeBatch(Collection<Staff> eos) throws Exception;

  /**
   * 员工 >>> 数据量
   */
  public Long count(StaffQO qo) throws Exception;

  /**
   * 员工 >>> 主键查询
   */
  public Staff pk(StaffQO qo) throws Exception;

  /**
   * 员工 >>> 查询
   */
  public Collection<Staff> query(StaffQO qo) throws Exception;

  /**
   * 员工 >>> 分页
   */
  public Paging<Staff> paging(Param<StaffQO> param) throws Exception;

  /**
   * 员工 >>> 业务数据量
   */
  public Long countVo(StaffQO qo) throws Exception;

  /**
   * 员工 >>> 业务主键查询
   */
  public StaffVO pkVo(StaffQO qo) throws Exception;

  /**
   * 员工 >>> 业务查询
   */
  public Collection<StaffVO> queryVo(StaffQO qo) throws Exception;

  /**
   * 员工 >>> 业务分页
   */
  public Paging<StaffVO> pagingVo(Param<StaffQO> param) throws Exception;

}
